import qs from 'qs';
import request from '@/utils/request';
import { ResponseData } from '../typing';
// 参数接口
export interface CreatePropertyRelationParams {
    // 本房产ID */
    propertyId: number;
    // 关联房产ID列表 */
    relations: Record<string, unknown>[];
}

/**
 * 创建房产关联
 * @param {object} params 管理后台 - 房产关联创建 Request VO
 * @param {number} params.propertyId 本房产ID
 * @param {array} params.relations 关联房产ID列表
 * @returns
 */
export function createPropertyRelation(params: CreatePropertyRelationParams): Promise<ResponseData<boolean>> {
    return request.post(`/yfwy/property-relation/create`, params);
}
export interface QueryPropertyParams {
    propertyId: string;
    size?: number;
    current?: number;
    owner?: string;
    phone?: string;
    idCard?: string;
    propertyNumber?: string;
}
// 响应接口
export interface GetPropertyListRes {
    code: number;
    data: {
        size: number;
        total: number;
        records: {
            createTime: Record<string, unknown>;
            updateTime: Record<string, unknown>;
            creator: number;
            updater: number;
            // 主键 */
            id: number;
            // 类型:1->房产,2->车位,3->别墅,4->商铺 */
            type: number;
            // 项目code */
            projectCode: string;
            // 小区名 */
            residentialName: string;
            // 楼栋 */
            building: string;
            // 楼栋ID */
            buildingId: number;
            // 楼栋(数字) */
            buildingNum: number;
            // 单元 */
            unit: string;
            // 单元ID */
            unitId: number;
            // 单元(数字) */
            unitNum: number;
            // 楼层 */
            floor: string;
            // 楼层ID */
            floorId: number;
            // 楼栋(数字) */
            floorNum: number;
            // 房间号 */
            room: string;
            // 房间号(数字) */
            roomNum: string;
            // 业主,多个/隔开 */
            owner: string;
            // 联系电话 */
            phone: string;
            // 身份证号 */
            idCard: string;
            // 房产类型 */
            propertyType: string;
            // 房产类型(字典项) */
            propertyTypeValue: string;
            // 交付类型 */
            deliveryType: string;
            // 交付类型(字典项) */
            deliveryTypeValue: string;
            // 注入状态:0->空置,1->入住 */
            checkIn: number;
            // 计费面积(㎡) */
            billableArea: number;
            // 是否欠费:0->否1,->是 */
            arrears: number;
            // 欠费金额 */
            arrearsAmount: string;
            // 管家姓名 */
            housekeeper: string;
            // 是否装修:0->否,1->是 */
            renovation: number;
            // 是否出租:0->否,1->是 */
            hire: number;
            // 房产号 */
            propertyNumber: string;
        }[];
        current: number;
        pages: number;
    };
    msg: string;
}
/**
 * 本项目房产列表
 * @param {string} query
 * @returns
 */
export function getPropertyList(query: QueryPropertyParams): Promise<GetPropertyListRes> {
    return request.get(`/yfwy/property-relation/properties?${qs.stringify(query)}`);
}
// 响应接口
export interface GetPropertyAllListRes {
    code: number;
    data: {
        size: number;
        total: number;
        records: {
            createTime: Record<string, unknown>;
            updateTime: Record<string, unknown>;
            creator: number;
            updater: number;
            // 主键 */
            id: number;
            // 类型:1->房产,2->车位,3->别墅,4->商铺 */
            type: number;
            // 项目code */
            projectCode: string;
            // 小区名 */
            residentialName: string;
            // 楼栋 */
            building: string;
            // 楼栋ID */
            buildingId: number;
            // 楼栋(数字) */
            buildingNum: number;
            // 单元 */
            unit: string;
            // 单元ID */
            unitId: number;
            // 单元(数字) */
            unitNum: number;
            // 楼层 */
            floor: string;
            // 楼层ID */
            floorId: number;
            // 楼栋(数字) */
            floorNum: number;
            // 房间号 */
            room: string;
            // 房间号(数字) */
            roomNum: string;
            // 业主,多个/隔开 */
            owner: string;
            // 联系电话 */
            phone: string;
            // 身份证号 */
            idCard: string;
            // 房产类型 */
            propertyType: string;
            // 房产类型(字典项) */
            propertyTypeValue: string;
            // 交付类型 */
            deliveryType: string;
            // 交付类型(字典项) */
            deliveryTypeValue: string;
            // 注入状态:0->空置,1->入住 */
            checkIn: number;
            // 计费面积(㎡) */
            billableArea: number;
            // 是否欠费:0->否1,->是 */
            arrears: number;
            // 欠费金额 */
            arrearsAmount: string;
            // 管家姓名 */
            housekeeper: string;
            // 是否装修:0->否,1->是 */
            renovation: number;
            // 是否出租:0->否,1->是 */
            hire: number;
            // 房产号 */
            propertyNumber: string;
        }[];
        current: number;
        pages: number;
    };
    msg: string;
}
/**
 * 集团内房产列表
 * @param {string} query
 * @returns
 */
export function getPropertyAllList(query: QueryPropertyParams): Promise<GetPropertyAllListRes> {
    const { propertyId, ...params } = query;
    return request.get(`/yfwy/property-relation/properties/all/${propertyId}?${qs.stringify(params)}`);
}
// 响应接口
export interface GetPropertyRelationListRes {
    code: number;
    data: {
        // 小区名 */
        residentialName: string;
        // 房产号 */
        propertyNumber: string;
    }[];
    msg: string;
}
/**
 * 获得房产关联列表
 * @param {string} propertyId
 * @returns
 */
export function getPropertyRelationList(params: { propertyId: string }): Promise<GetPropertyRelationListRes> {
    return request.get(`/yfwy/property-relation/list/${params.propertyId}`);
}
// 响应接口
export interface GetPropertyRelationRes {
    code: number;
    data: {
        createTime: Record<string, unknown>;
        updateTime: Record<string, unknown>;
        creator: number;
        updater: number;
        // 主键 */
        id: number;
        // 业主ID */
        ownerId: number;
        // 房产ID */
        propertyId: number;
    };
    msg: string;
}
/**
 * 获得房产关联
 * @param {string} id
 * @returns
 */
export function getPropertyRelation(id: number): Promise<GetPropertyRelationRes> {
    return request.get(`/yfwy/property-relation/get/${id}`);
}
